مديريت وضعيت صفحات در فرم های وب ( State Management )
فرم های وب و فريمورک ASP.NET از طريق پروتکل Http با يکديگر مبادله اطلاعاتی دارند( مرورگر و سرويس دهنده وب ) . Http يک پروتکل stateless است . صفحات وب زمانيکه از سرويس گيرنده درخواستی برای آنان نزد سرويس دهنده واصل گردد ،مجددا" ايجاد خواهند شد. اين بدان معنی است که تمامی اطلاعات مرتبط با صفحه و کنترل های مربوطه بر روی صفحه گم ( حذف ) می شوند. مثلا" اگر کاربری اطلاعاتی را در يک TextBox درج کرده باشد ، اطلاعات درج شده پس از ارسال صفحه از طريق مرورگر به سرويس دهنده حذف خواهند شد. برای غلبه بر اين نوع از مشکلات ،ASP.NET راهکارهای متفاوتی در اين زمينه را ارائه نموده است. راهکارهای ارائه شده به دو گروه عمده تقسيم می گردنند:
● Client-Based state management
● Server-Based state management
در ادامه به تشريح امکانات ارائه شده در هر يک از گروه های فوق خواهيم پرداخت .
گزينه های Client-Based
در اين بخش به بررسی امکاناتی پرداخته می شود که بکمک آنها می توان اطلاعات مورد نظر را بر روی صفحه و يا بر روی کامپيوتر سرويس گيرنده ذخيره نمود.
● View State . يک ديکشنری از اشياء مورد نظر برای ذخيره و بازيابی اطلاعات مورد نياز جهت استفاده در فرم های وب است . زمانيکه صفحه پردازش می گردد ،وضعيت جاری صفحه بهمراه کنترل های مربوطه در يک رشته ذخيره و بعنوان يک فيلد مخفی در صفحه نگهداری می شوند. زمانيکه صفحه مجددا" برای سرويس دهنده ارسال می گردد در ابتدا رشته فوق بررسی و مقادير ذخيره شده در آن استخراج و اطلاعات مربوطه در صفحه مجددا" بازيابی خواهند شد. هر يک از کنترل های موجود بر روی يک فرم وب ( خود صفحه را هم شامل می شود) شامل يک صفت Viewstate بوده که از کلاس پايه ای Control برای آنها به ارث رسيده است. Viewstate در فريمورک ASP.NET بمنظور ذخيره خودکار مقادير مربوط به صفحه و کنترل های موجود استفاده می گردد. زمانيکه صفحه برای سرويس دهنده پست می گردد ،يکی از اولين عملياتی که در اين زمينه انجام خواهد گرفت ،برگرداندن viewstate است . صفت viewstate در صفحات وب در يک فيلد مخفی نگهداری می گردد. بمنظور استفاده از صفت فوق می بايست فرم دارای المانی با نام
????????: مديريت وضعيت صفحات در ASP, NET ,